<?php 
    session_start();
    class UserController{
        public function handleRequest(){
            
            $api = new api();
            $user = new User();
            $user_model = new UserTableModel();
            /* include session đăng nhập */
            include ROOT_CLASSES."/Session/login.php";
            /* end include session  đăng nhập*/
            $com = $_GET['com'];
            $task = isset($_GET['task'])?$_GET['task']:"view";
            $userID = $_SESSION['bg_login']['bg_user_id'];
            switch($task){
                case "view":
                    /** View user*/
                    $column = array("user_id","user_name","user_email","user_display_name","user_status","user_level","user_createdate");
                    $orderBy = array("ORDER BY"=>"user_createdate DESC");
                    $where = null;
                    if(isset($_POST['fill'])){
                        header("Location:".BASE_URL_ADMIN."?com=".$com."&status=".$_POST['user_status']."&level=".$_POST['user_level']);
                    }
                    if($_GET['status'] && (int)$_GET['status']){
                        $where['user_status'] .= $_GET['status']-1;
                    }                 
                    if($_GET['level'] && (int)$_GET['level']){
                        $where['user_level'] .= $_GET['level'];
                    }           
                    $listUser = $user_model->selectUser($column,$orderBy,$where);    
                    /** End View user */
                    if($_POST['add_user']){
                        $flag = true;
                        if($userID != 1){
                            if($_SESSION["'".$com."'"]['add'] != 1){
                                $messege = "Bạn không có quyền add". $com;
                                $flag = false;
                            }
                        }
                        if($flag == true){
                            $data = array();
                            $user_activation_key = $api->randomString(20);
                            $data['user_name'] = $_POST['user_name'];
                            $data['user_pass'] = md5($_POST['user_pass']);
                            $user_re_pass = md5($_POST['user_re_pass']);
                            $data['user_email'] = $_POST['user_email'];
                            $data['user_createdate'] =  date('YmdHis',time());
                            $data['user_activation_key'] = $user_activation_key;
                            $data['user_display_name'] = $_POST['user_display_name'];
                            $data['user_status'] = 0;
                            $data['user_level'] = $_POST['user_level'];
                            $errors = array();
                            if($data['user_name'] == "" || $data['user_email']== ""){
                                $errors[]= "Vui lòng kiểm tra lại dữ liệu nhập";
                            }else{
                                if($api->validateEmail($data['user_email']) != 1)
                                    $errors[]= "Email không hợp lệ";
                            }
                            if($data['user_pass'] != $user_re_pass){
                                $errors[] = "Password phải giống nhau";
                            }
                            if(empty($errors)){
                                if($user_model->checkUserName($data['user_name'])>0){
                                    $check[] = "Tên đăng nhập đã tồn tại";
                                }
                                if($user_model->checkEmail($data['user_email'])>0){
                                    $check[] = "Địa chỉ Email đã tồn tại";
                                }
                                if(empty($check)){
                                   $user->exchangeArray($data);
                                   if($user_model->addUser($user)){
                                        $success = "Thêm thành viên thành công";
                                   }else{
                                        $messege = "Không thể thêm thành viên ! Vui lòng thử lại";
                                   }
                               }
                            }
                            
                        }
                    }
                    render_admin("list",array("listUser"=>$listUser,
                                                "messege"=>$messege,
                                                "errors"=>$errors,
                                                "check"=>$check,
                                                "success"=>$success),"users/");
                break;
            }
            
		}
	}
?>